Soru & Cevap

Arduinoda iki sensörü bağlama

03.06.2018 - 02:30

Sayın üstadlarım; ben arduinoya yeni adım attım ve bir konuda zorlanıp yapamıyorum. Arduinoya bağlamış olduğum ses sensörü ve ldr ışık sensörünün tetiklemesiyle led ışık 7 veya 10 saniye yanıp sonra sensörler tekrar tetikleme yapıncaya kadar ledin sönmesini istiyorum, bağlantıları yaptım ama kod kısmını yapamadım. Bu iki sensörü aynı anda çalıştırabilecek bir kod yazma konusunda yardımcı olursanız sevinirim. İlginiz için teşekkür ederim.

300 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user neronkadir
neronkadir
21.07.2018 - 12:25

Merhaba;

Vermiş olduğunuz cevap için teşekkür ederim ama ben konuyu tam olarak anlayamadım. Şimdi ben şu iki sensöre ait kodları birleştirmem gerekiyor;

1- ) sharp 2Y0A710K0F kızılötesi sensör;

const int signalPin= 0; //yellow wire connects to analog pin A0
const int LEDPin= 12; //LED connects to digital pin 13
int signal;//this variable, signal, will hold the analog value read by the arduino

void setup() {
Serial.begin(9600); //sets the baud rate for data transfer in bits/second
pinMode(signalPin, INPUT); //the infrared sensor signal line will be an input to the arduino
pinMode(LEDPin, OUTPUT); //the LED serves an output in the circuit
}

void loop() {
signal= analogRead(signalPin); //arduino reads the value from the infrared sensor
Serial.println(signal); //prints out analog value
delay(500); //delays the next analog reading by 500 ms or a half a second

if(signal < 500){ //if the analog value is less than 200, the object is within a few inches
digitalWrite(LEDPin, HIGH);
delay (3000);
digitalWrite (LEDPin, LOW);
delay(1000);
}
else{
digitalWrite(LEDPin, LOW);
}
}

2-) Ses sensörüne ait kod;

const int LEDPin = 12;
const int Sensor = 1;

int seviye;
const int esik = 550;

void setup()
{
pinMode (LEDPin, OUTPUT);
Serial.begin(9600);
}

void loop() {
seviye = analogRead(Sensor);
if (seviye > esik)
{
digitalWrite (LEDPin, HIGH);
delay (3000);
digitalWrite (LEDPin, LOW);
delay(1000);
}
else
{
digitalWrite(LEDPin, LOW);
}
}

Yardımcı olursanız çok sevinirim.

picture-158072-1530701953.jpg
TGUNEYSU
06.06.2018 - 06:07
Bu işlemi kesme (interrupt) kullanarak kolay bir şekilde yapabilirsiniz. Arduino nun referans sayfasında interrupt kısmına bakın ve örnek kodu uygulayın. İki sensörü iki ayrı kesmeye atayıp bunlarin ISR (kesme rutinlerini) LED leri yakıp söndürecek şekilde yazın. Kesmeler tetiklendiğinde yazdığınız LED kodu çalışacaktır.